1 module firecracker_d.models.logger; 2 import firecracker_d.models.base_model; 3 import asdf; 4 5 /*** 6 * Verbosity levels for the logger 7 ***/ 8 enum LoggerLevel : string { 9 Error = "Error", 10 Warning = "Warning", 11 Info = "Info", 12 Debug = "Debug" 13 } 14 15 struct Logger { 16 mixin BaseModel; 17 18 /*** 19 * Verbosity level for our logger 20 ***/ 21 @serializationKeys("level") LoggerLevel level; 22 23 /*** 24 * Output location for the log 25 * 26 * Can be a named pipe, or the path to a file 27 ***/ 28 @serializationKeys("log_path") string logPath; 29 30 /*** 31 * Option to show the level of individual events in the 32 * log file. 33 ***/ 34 @serializationKeys("show_level") bool showLevel; 35 36 /*** 37 * Option to show the origin of where log events originate 38 * from. 39 ***/ 40 @serializationKeys("show_log_origin") bool showLogOrigin; 41 42 /*** 43 * Create the logger via the Firecracker API. 44 * Throws: FirecrackerException on error. 45 ***/ 46 bool put(FirecrackerAPIClient cl) { 47 Response r = cl.put("/logger", this.stringify); 48 if(r.code == 204) { 49 return true; 50 } 51 else { 52 throwFromResponse(r); 53 return false; 54 } 55 } 56 }